package com.imooc.trading_system.service;

import com.imooc.trading_system.model.UserDO;
import com.imooc.trading_system.utils.JsonData;
import com.imooc.trading_system.vo.user.LoginUserReqVO;
import com.imooc.trading_system.vo.user.RegisterReqVO;
import com.imooc.trading_system.vo.user.UpdateLoginUserInfoReqVO;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author Feng zhaoxi
 * @since 2022-04-23
 */
public interface UserService {
    /**
     * 用户登录
     *
     * @param loginUserReqVO
     * @return
     */
    JsonData login(LoginUserReqVO loginUserReqVO);

    /**
     * 用户注册
     *
     * @param registerReqVO
     * @return
     */
    JsonData register(RegisterReqVO registerReqVO);

    /**
     * 获取登录用户的信息
     *
     * @return
     */
    JsonData getLoginUserInfo();

    /**
     * 修改个人信息(除头像)
     *
     * @return
     */
    JsonData updateLoginUserInfo(UpdateLoginUserInfoReqVO updateLoginUserInfoReqVO);

    /**
     * 获取登录用户实例
     *
     * @return
     */
    UserDO getLoginUser();

    /**
     * 上传头像
     *
     * @param file
     * @return
     */
    JsonData uploadHeadImg(MultipartFile file);

    /**
     * 获取产品发布者的信息
     *
     * @param publishUserId
     * @return
     */
    UserDO getPublishUserInfo(int publishUserId);

    /**
     * 获取当前日期
     *
     * @return
     */
    JsonData getDate();
}
